#!/bin/bash
# 尝试解析符号链接获取实际路径
if command -v readlink &> /dev/null; then
    script_path=$(readlink -f "$0")
elif command -v realpath &> /dev/null; then
    script_path=$(realpath "$0")
else
    # 不支持 readlink 或 realpath 的情况
    script_path=$(cd "$(dirname "$0")"; pwd -P)/$(basename "$0")
fi

# 获取当前脚本所在的目录（绝对路径）
script_dir=$(dirname "$script_path")

# 获取父目录（绝对路径）
parent_dir=$(cd "$script_dir/.."; pwd)
START_DIR=$script_dir
CURRENT_DIR=$parent_dir

# 检查进程是否在运行
check_running() {
    tmux list-sessions | grep -q "$1"
    if [ $? -eq 0 ]; then
        echo "\Zb\Z2运行中\Zn"
    else
        echo "\Zb\Z1未运行\Zn"
    fi
}

# 查看日志
view_log() {
    tail -n 30 "$1"
    sleep 7
}

# onebot 提示
show_onebot_notice() {
    dialog --no-lines --colors --title "⭐ \Zb\Z4重要提示\Zn ⭐" --msgbox "\n\Zb\Z1本脚本不再维护onebot协议，如何配置和启动onebot协议请参考\nhttps://eridanus.netlify.app/中的 “linux部署”\Zn" 10 60
}

# 首次运行提示
FIRST_RUN_FLAG="$START_DIR/hint"
if [ ! -f "$FIRST_RUN_FLAG" ]; then
    show_onebot_notice
    touch "$FIRST_RUN_FLAG"
fi

while true; do
    #Eridanus状态
    ERIDANUS_STATUS=$(check_running "Eridanus")

    CHOICE=$(dialog --no-lines --colors --clear --title "⭐ \Zb\Z4机器人启动菜单\Zn ⭐" \
        --menu "\n\Zb\Z6请选择要执行的操作:\Zn" 20 50 14 \
        1 "\Zb\Z3启动 Eridanus \Zn (\Zn $ERIDANUS_STATUS \Zb\Z3)\Zn" \
        2 "\Zb\Z3临时查看 Eridanus 日志2s\Zn" \
        3 "\Zb\Z1结束 Eridanus 进程\Zn" \
        4 "\Zb\Z3更新机器人\Zn" \
        5 "\Zb\Z3启动提示\Zn" \
        6 "\Zb\Z4退出\Zn" \
        3>&1 1>&2 2>&3)

    case $CHOICE in
        1)

            if [ "$ERIDANUS_STATUS" == "\Zb\Z1未运行\Zn" ]; then
                $START_DIR/2_Eridanus_withoutgui.sh
                dialog --no-lines --colors --msgbox "\n\Zb\Z2Eridanus 启动中,启动完成请查看日志中webui,然后去浏览器访问\Zn" 10 50
                sleep 2 # 强制显示2秒
                ERIDANUS_STATUS="\Zb\Z2运行中\Zn"
            else
                dialog --no-lines --colors --msgbox "\n\Zb\Z2Eridanus 已经在运行中,请查看日志并前往webui进行配置\Zn" 10 50
                sleep 1 # 强制显示2秒
            fi

            ;;
        2)
            # 查看 Eridanus 日志
            view_log "$START_DIR/eridanus_log.txt"
            ;;
        3)
            tmux kill-session -t Eridanus
            dialog --no-lines --colors --msgbox "\n\Zb\Z1Eridanus 进程已结束\Zn" 10 50
            ;;
        4)
            if [ -d "$START_DIR/../Eridanus/.git" ]; then
                $START_DIR/update.sh
            else
                dialog --no-lines --colors --msgbox "\n\Zb\Z1未绑定远程仓库，请先执行更新脚本中1.绑定仓库\Zn" 10 50
                $START_DIR/update.sh
            fi
            #dialog --no-lines --colors --msgbox "\n\Zb\Z1更新脚本未完善暂不开放\Zn" 10 50
            ;;
        5)
            show_onebot_notice
            ;;
        6)
            clear
            exit 0
            ;;
        *)
            dialog --no-lines --colors --msgbox "\n\Zb\Z1无效选择\Zn" 10 50
            ;;
    esac
done